home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 414_01 / key.h < prev    next >
C/C++ Source or Header  |  1993-11-15  |  21KB  |  624 lines

  1. /*
  2.  * THE - The Hessling Editor. A text editor similar to VM/CMS xedit.
  3.  * Copyright (C) 1991-1993 Mark Hessling
  4.  *
  5.  * This program is free software; you can redistribute it and/or
  6.  * modify it under the terms of the GNU General Public License as
  7.  * published by the Free Software Foundation; either version 2 of
  8.  * the License, or any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13.  * General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to:
  17.  *
  18.  *    The Free Software Foundation, Inc.
  19.  *    675 Mass Ave,
  20.  *    Cambridge, MA 02139 USA.
  21.  *
  22.  *
  23.  * If you make modifications to this software that you feel increases
  24.  * it usefulness for the rest of the community, please email the
  25.  * changes, enhancements, bug fixes as well as any and all ideas to me.
  26.  * This software is going to be maintained and enhanced as deemed
  27.  * necessary by the community.
  28.  *
  29.  * Mark Hessling                     email: M.Hessling@gu.edu.au
  30.  * 36 David Road                     Phone: +61 7 849 7731
  31.  * Holland Park                      Fax:   +61 7 875 5314
  32.  * QLD 4121
  33.  * Australia
  34.  */
  35.  
  36. /*
  37. $Header: C:\THE\RCS\key.h 1.4 1993/09/01 16:26:37 MH Interim MH $
  38. */
  39.  
  40. #include "getch.h"
  41.  
  42. struct key_values
  43. {
  44.  char *mnemonic;
  45.  unsigned short key_value;
  46. };
  47. typedef struct key_values KEYS;
  48.  
  49. #if defined(DOS) || defined(OS2)
  50. #define MAX_NUMBER_KEYS 312
  51. #else
  52. #define MAX_NUMBER_KEYS 247
  53. #endif
  54.  
  55. KEYS key_table[MAX_NUMBER_KEYS] =
  56. {
  57. #if defined(DOS) || defined(OS2)
  58. /* normal characters */
  59.   {(char *)"A",KEY_a },
  60.   {(char *)"B",KEY_b },
  61.   {(char *)"C",KEY_c },
  62.   {(char *)"D",KEY_d },
  63.   {(char *)"E",KEY_e },
  64.   {(char *)"F",KEY_f },
  65.   {(char *)"G",KEY_g },
  66.   {(char *)"H",KEY_h },
  67.   {(char *)"I",KEY_i },
  68.   {(char *)"J",KEY_j },
  69.   {(char *)"K",KEY_k },
  70.   {(char *)"L",KEY_l },
  71.   {(char *)"M",KEY_m },
  72.   {(char *)"N",KEY_n },
  73.   {(char *)"O",KEY_o },
  74.   {(char *)"P",KEY_p },
  75.   {(char *)"Q",KEY_q },
  76.   {(char *)"R",KEY_r },
  77.   {(char *)"S",KEY_s },
  78.   {(char *)"T",KEY_t },
  79.   {(char *)"U",KEY_u },
  80.   {(char *)"V",KEY_v },
  81.   {(char *)"W",KEY_w },
  82.   {(char *)"X",KEY_x },
  83.   {(char *)"Y",KEY_y },
  84.   {(char *)"Z",KEY_z },
  85.   {(char *)"0",KEY_0 },
  86.   {(char *)"1",KEY_1 },
  87.   {(char *)"2",KEY_2 },
  88.   {(char *)"3",KEY_3 },
  89.   {(char *)"4",KEY_4 },
  90.   {(char *)"5",KEY_5 },
  91.   {(char *)"6",KEY_6 },
  92.   {(char *)"7",KEY_7 },
  93.   {(char *)"8",KEY_8 },
  94.   {(char *)"9",KEY_9 },
  95.   {(char *)"`",KEY_BQUOTE },
  96.   {(char *)"-",KEY_MINUS },
  97.   {(char *)"=",KEY_EQUAL },
  98.   {(char *)"[",KEY_LBRACKET },
  99.   {(char *)"]",KEY_RBRACKET },
  100.   {(char *)"\\",KEY_BSLASH },
  101.   {(char *)";",KEY_SEMICOLON },
  102.   {(char *)"'",KEY_FQUOTE },
  103.   {(char *)",",KEY_COMMA },
  104.   {(char *)".",KEY_STOP },
  105.   {(char *)"/",KEY_FSLASH },
  106.   {(char *)"SPACE",KEY_SPACE },
  107.   {(char *)"ENTER",KEY_RETURN },
  108.   {(char *)"TAB",KEY_TAB },
  109.   {(char *)"ESC",KEY_ESC },
  110.   {(char *)"BKSP",KEY_BKSP },
  111.   {(char *)"F1",KEY_F1},
  112.   {(char *)"F2",KEY_F2},
  113.   {(char *)"F3",KEY_F3},
  114.   {(char *)"F4",KEY_F4},
  115.   {(char *)"F5",KEY_F5},
  116.   {(char *)"F6",KEY_F6},
  117.   {(char *)"F7",KEY_F7},
  118.   {(char *)"F8",KEY_F8},
  119.   {(char *)"F9",KEY_F9},
  120.   {(char *)"F10",KEY_F10},
  121.   {(char *)"F11",KEY_F11},
  122.   {(char *)"F12",KEY_F12},
  123.   {(char *)"HOME",KEY_HOME},
  124.   {(char *)"PGUP",KEY_PGUP},
  125.   {(char *)"PGDN",KEY_PGDN},
  126.   {(char *)"CURU",KEY_CURU},
  127.   {(char *)"CURD",KEY_CURD},
  128.   {(char *)"CURL",KEY_CURL},
  129.   {(char *)"CURR",KEY_CURR},
  130.   {(char *)"END",KEY_END},
  131.   {(char *)"INS",KEY_INS},
  132.   {(char *)"DEL",KEY_DEL},
  133.   {(char *)"CENTER",KEY_NUMCENTER },
  134.   {(char *)"PLUS",KEY_NUMPLUS},
  135.   {(char *)"MINUS",KEY_NUMMINUS},
  136.   {(char *)"SLASH",KEY_NUMSLASH},
  137.   {(char *)"STAR",KEY_NUMSTAR},
  138.   {(char *)"NUMENTER",KEY_NUMENTER},
  139. /* shifted characters */
  140.   {(char *)"S-A",KEY_S_a  },
  141.   {(char *)"S-B",KEY_S_b  },
  142.   {(char *)"S-C",KEY_S_c  },
  143.   {(char *)"S-D",KEY_S_d  },
  144.   {(char *)"S-E",KEY_S_e  },
  145.   {(char *)"S-F",KEY_S_f  },
  146.   {(char *)"S-G",KEY_S_g  },
  147.   {(char *)"S-H",KEY_S_h  },
  148.   {(char *)"S-I",KEY_S_i  },
  149.   {(char *)"S-J",KEY_S_j  },
  150.   {(char *)"S-K",KEY_S_k  },
  151.   {(char *)"S-L",KEY_S_l  },
  152.   {(char *)"S-M",KEY_S_m  },
  153.   {(char *)"S-N",KEY_S_n  },
  154.   {(char *)"S-O",KEY_S_o  },
  155.   {(char *)"S-P",KEY_S_p  },
  156.   {(char *)"S-Q",KEY_S_q  },
  157.   {(char *)"S-R",KEY_S_r  },
  158.   {(char *)"S-S",KEY_S_s  },
  159.   {(char *)"S-T",KEY_S_t  },
  160.   {(char *)"S-U",KEY_S_u  },
  161.   {(char *)"S-V",KEY_S_v  },
  162.   {(char *)"S-W",KEY_S_w  },
  163.   {(char *)"S-X",KEY_S_x  },
  164.   {(char *)"S-Y",KEY_S_y  },
  165.   {(char *)"S-Z",KEY_S_z  },
  166.   {(char *)"S-0",KEY_S_0  },
  167.   {(char *)"S-1",KEY_S_1  },
  168.   {(char *)"S-2",KEY_S_2  },
  169.   {(char *)"S-3",KEY_S_3  },
  170.   {(char *)"S-4",KEY_S_4  },
  171.   {(char *)"S-5",KEY_S_5  },
  172.   {(char *)"S-6",KEY_S_6  },
  173.   {(char *)"S-7",KEY_S_7  },
  174.   {(char *)"S-8",KEY_S_8  },
  175.   {(char *)"S-9",KEY_S_9  },
  176.   {(char *)"S-`",KEY_S_BQUOTE  },
  177.   {(char *)"S--",KEY_S_MINUS  },
  178.   {(char *)"S-=",KEY_S_EQUAL  },
  179.   {(char *)"S-[",KEY_S_LBRACKET  },
  180.   {(char *)"S-]",KEY_S_RBRACKET  },
  181.   {(char *)"S-\\",KEY_S_BSLASH  },
  182.   {(char *)"S-;",KEY_S_SEMICOLON  },
  183.   {(char *)"S-'",KEY_S_FQUOTE  },
  184.   {(char *)"S-,",KEY_S_COMMA  },
  185.   {(char *)"S-.",KEY_S_STOP  },
  186.   {(char *)"S-/",KEY_S_FSLASH  },
  187.   {(char *)"S-TAB",KEY_S_TAB },
  188.   {(char *)"S-F1",KEY_S_F1},
  189.   {(char *)"S-F2",KEY_S_F2},
  190.   {(char *)"S-F3",KEY_S_F3},
  191.   {(char *)"S-F4",KEY_S_F4},
  192.   {(char *)"S-F5",KEY_S_F5},
  193.   {(char *)"S-F6",KEY_S_F6},
  194.   {(char *)"S-F7",KEY_S_F7},
  195.   {(char *)"S-F8",KEY_S_F8},
  196.   {(char *)"S-F9",KEY_S_F9},
  197.   {(char *)"S-F10",KEY_S_F10},
  198.   {(char *)"S-F11",KEY_S_F11},
  199.   {(char *)"S-F12",KEY_S_F12},
  200.   {(char *)"S-HOME",KEY_S_HOME},
  201.   {(char *)"S-PGUP",KEY_S_PGUP},
  202.   {(char *)"S-PGDN",KEY_S_PGDN},
  203.   {(char *)"S-CURU",KEY_S_CURU},
  204.   {(char *)"S-CURD",KEY_S_CURD},
  205.   {(char *)"S-CURL",KEY_S_CURL},
  206.   {(char *)"S-CURR",KEY_S_CURR},
  207.   {(char *)"S-END",KEY_S_END},
  208.   {(char *)"S-INS",KEY_S_INS},
  209.   {(char *)"S-DEL",KEY_S_DEL},
  210.   {(char *)"S-CENTER",KEY_S_NUMCENTER},
  211.   {(char *)"S-NUMSTOP",KEY_S_NUMSTOP},
  212.   {(char *)"S-NUM0",KEY_S_NUM0},
  213.   {(char *)"S-NUM1",KEY_S_NUM1},
  214.   {(char *)"S-NUM2",KEY_S_NUM2},
  215.   {(char *)"S-NUM3",KEY_S_NUM3},
  216.   {(char *)"S-NUM4",KEY_S_NUM4},
  217.   {(char *)"S-NUM6",KEY_S_NUM6},
  218.   {(char *)"S-NUM7",KEY_S_NUM7},
  219.   {(char *)"S-NUM8",KEY_S_NUM8},
  220.   {(char *)"S-NUM9",KEY_S_NUM9},
  221. /* control characters */
  222.   {(char *)"C-A",KEY_C_a  },
  223.   {(char *)"C-B",KEY_C_b  },
  224.   {(char *)"C-C",KEY_C_c  },
  225.   {(char *)"C-D",KEY_C_d  },
  226.   {(char *)"C-E",KEY_C_e  },
  227.   {(char *)"C-F",KEY_C_f  },
  228.   {(char *)"C-G",KEY_C_g  },
  229.   {(char *)"C-H",KEY_C_h  },
  230.   {(char *)"C-I",KEY_C_i  },
  231.   {(char *)"C-J",KEY_C_j  },
  232.   {(char *)"C-K",KEY_C_k  },
  233.   {(char *)"C-L",KEY_C_l  },
  234.   {(char *)"C-M",KEY_C_m  },
  235.   {(char *)"C-N",KEY_C_n  },
  236.   {(char *)"C-O",KEY_C_o  },
  237.   {(char *)"C-P",KEY_C_p  },
  238.   {(char *)"C-Q",KEY_C_q  },
  239.   {(char *)"C-R",KEY_C_r  },
  240.   {(char *)"C-S",KEY_C_s  },
  241.   {(char *)"C-T",KEY_C_t  },
  242.   {(char *)"C-U",KEY_C_u  },
  243.   {(char *)"C-V",KEY_C_v  },
  244.   {(char *)"C-W",KEY_C_w  },
  245.   {(char *)"C-X",KEY_C_x  },
  246.   {(char *)"C-Y",KEY_C_y  },
  247.   {(char *)"C-Z",KEY_C_z  },
  248.   {(char *)"C-2",KEY_C_2  },
  249.   {(char *)"C-6",KEY_C_6  },
  250.   {(char *)"C--",KEY_C_MINUS  },
  251.   {(char *)"C-[",KEY_C_LBRACKET  },
  252.   {(char *)"C-]",KEY_C_RBRACKET  },
  253.   {(char *)"C-\\",KEY_C_BSLASH  },
  254.   {(char *)"C-ENTER",KEY_C_ENTER },
  255.   {(char *)"C-TAB",KEY_C_TAB},
  256.   {(char *)"C-BKSP",KEY_C_BKSP  },
  257.   {(char *)"C-F1",KEY_C_F1},
  258.   {(char *)"C-F2",KEY_C_F2},
  259.   {(char *)"C-F3",KEY_C_F3},
  260.   {(char *)"C-F4",KEY_C_F4},
  261.   {(char *)"C-F5",KEY_C_F5},
  262.   {(char *)"C-F6",KEY_C_F6},
  263.   {(char *)"C-F7",KEY_C_F7},
  264.   {(char *)"C-F8",KEY_C_F8},
  265.   {(char *)"C-F9",KEY_C_F9},
  266.   {(char *)"C-F10",KEY_C_F10},
  267.   {(char *)"C-F11",KEY_C_F11},
  268.   {(char *)"C-F12",KEY_C_F12},
  269.   {(char *)"C-HOME",KEY_C_HOME},
  270.   {(char *)"C-PGUP",KEY_C_PGUP},
  271.   {(char *)"C-PGDN",KEY_C_PGDN},
  272.   {(char *)"C-CURU",KEY_C_CURU},
  273.   {(char *)"C-CURD",KEY_C_CURD},
  274.   {(char *)"C-CURL",KEY_C_CURL},
  275.   {(char *)"C-CURR",KEY_C_CURR},
  276.   {(char *)"C-END",KEY_C_END},
  277.   {(char *)"C-INS",KEY_C_INS},
  278.   {(char *)"C-DEL",KEY_C_DEL},
  279.   {(char *)"C-CENTER",KEY_C_NUMCENTER},
  280.   {